<?php
/**
 * Created by PhpStorm.
 * User: root
 * Date: 16-6-5
 * Time: 下午6:57
 */
namespace api;
class api{
    /**
     * @param string $type 返回书记类型
     * @param $code int
     * @param $message string
     * @param $data array
     * @return string 按照type 类型返回数据
     */
    static public function show($type='json',$code,$message,$data){
        $type=isset($_GET['format']) ? $_GET['format'] : $type;
        if( empty($code)){
            return('code不能为空 ');
        }

        if($type==='json'){
            return self::get_json($code,$message,$data);
        }elseif($type==='xml'){
            return self::get_xml($code,$message,$data);
        }
    }
    /**
     * 按JSON返回数据
     * @param $code int
     * @param $message string
     * @param $data array
     * @return string json
     */
    static public function get_json($code,$message,$data){

        if( empty($code)){
            return('code不能为空 ');
        }

        $res=[
            'code'=>$code,
            'message'=>$message,
            'data'=>$data,
        ];
        return json_encode($res);
    }

    /**
     * 返回xml
     * @param $code int
     * @param $message string
     * @param $data array
     * @return string xml
     */
    static public function get_xml($code,$message,$data){
        if( empty($code)){
            return('code不能为空 ');
        }
        header('Content-Type:text/xml;charset=utf-8');
        $xml="<?xml version='1.0' encoding='utf-8' ?>";
        $xml.='<root>';
        $xml.="<code>{$code}</code>";
        $xml.="<message>{$message}</message>";
        $xml.=self::to_xml($data);
        $xml.='</root>';

        return $xml;

    }

    /**
     * @param $data array
     * @return null|string 对array进行xml组装
     */
    static private function to_xml($data){
        $xml=null;
        foreach($data as $key=>$value){
            is_numeric($key) ? $key='id_'.$key :$key;
            $xml.="<{$key}>";
            $xml.=is_array($value) ? self::to_xml($value) : $value;
            $xml.="</{$key}>";
        }
        return $xml;

    }
}

